#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "testwidget.h"
#include "testdialog.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

#if true
    // 一般在qt的构造函数中进行初始化操作（窗口，数据等）
    // 当显示当前窗口时，进行TestWidget的显示
    // 该窗口没有指定父对象：独立窗口
    // 创建窗口对象：
    TestWidget* tw = new TestWidget;
    // 显示窗口
    tw->show();
#else
    // explicit TestWidget(QWidget *parent = nullptr); 构造参数含参
    // 该窗口指定了父对象：非独立窗口 -> 此时子窗口随着父窗口生成
    // 此时的tw会被内嵌到mainWindow中
    // 想要独立显示窗口，需要调用show
    TestWidget* tw = new TestWidget(this);
#endif
    TestDialog* dlg = new TestDialog(this);
    // 非模态 -> dlg->show();
    // 模态 -> dlg->exec() -> 阻塞程序执行
    // 在该窗口关闭前 -> 此时主窗口不显示，模态窗口不能进行焦点切换
    dlg->exec();
}

MainWindow::~MainWindow()
{
    delete ui;
}

